<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
    <title>回顾object.defineperoperty</title>
</head>

<body>
    <script>
        number = 18
        let persion = {
            name: 'zhangsan',
            sex: 'nan'
        }
        Object.defineProperty(persion, "age", {
            // value: 18, //不可枚举
            // enumerable: true, //控制属性是否可以被枚举 ，默认值false
            // writable: true,   //控制属性是否可以被修改 ，默认值false
            // configurable:true,//控制属性是否可以被删除 ，默认值false
            //当有人读取persion的age属性时，get函数（getter）调用  并返回的就是age值
            get() {
                console.log("有人读取age值")
                return number;
            },
            //当有人修改persion的age属性时，set函数（setter）调用  并返回的就是age值
            set(value) {
                console.log("有人修改age值")
                return number = value;
            }
        })
        console.log(persion)
        console.log(Object.keys(persion))
    </script>
</body>

</html>